package cn.e4j.modular.erp.mapper;

import cn.e4j.core.dto.impl.Dto;
import cn.e4j.modular.crm.entity.GwamT;
import com.baomidou.mybatisplus.annotation.SqlParser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author ganjia
 * @since 2019-09-18
 */
public interface T100Mapper extends BaseMapper<GwamT> {

    List<Dto> getListData(@Param("dto") Dto dto);

    List<Dto> getSiteList(@Param("page") Page<Object> page, @Param("dto") Dto dto);

    void insert_inbb_t(@Param("dto") Dto dto);

    int insert_inba_t(@Param("dto") Dto dto);

    void deleteExecSql(@Param("dto") Dto dto);

    Dto selectSql(@Param("dto") Dto dto);

    String getMaxXmdadocno(@Param("dto") Dto dto);

    Dto selectByGwak001(@Param("dto") Dto dto);

    int insertPMAA(@Param("dto") Dto dto);

    int insertPMAAL(@Param("dto") Dto dto);

    Dto getXmdkCount(@Param("dto") Dto dto);

    Dto getXmda(@Param("dto") Dto dto);

    int updateXmda(@Param("dto") Dto dto);


    // 新增客户
    int insertPmaa(@Param("dto") Dto qDto);

    // 新增客户多语言
    int insertPmaal(@Param("dto") Dto qDto);

    // 新增订单单头
    int insertXmda(@Param("dto") Dto qDto);

    // 新增订单单身明细
    int insertXmdc(@Param("dto") Dto qDto);

    // 新增订单交期明细
    int insertXmdd(@Param("dto") Dto qDto);

    // 删除订单单头
    int deleteXmda(@Param("dto") Dto inDto);

    // 删除订单单身明细
    int deleteXmdc(@Param("dto") Dto inDto);

    // 删除订单交期明细
    int deleteXmdd(@Param("dto") Dto inDto);

    // insert类型的sql存储过程
    int insertExecSql(@Param("dto") Dto inDto);
    // update类型的sql存储过程
    int updateExecSql(@Param("dto") Dto inDto);

    // select类型的sql存储过程 （ 返回Dto ）
    Dto selectExecSql(@Param("dto") Dto inDto);

    // 查看ERP系统中的客户订单号
    Dto getXmda008(@Param("dto") Dto inDto);

    /**
     * 创建临时表
     */
    void createTable(@Param("tableName") String tableName);

    void truncateTable(@Param("tableName") String tableName);

    void dropTable(@Param("tableName") String tableName);

    @SqlParser(filter=true)
    int updatePmaa(@Param("dto") Dto dto);

    @SqlParser(filter=true)
    int updatePmaal(@Param("dto") Dto dto);
}
